package com.bsg.upm.dto;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 集群数据传输对象
 * 
 * @author HCK
 *
 */
public class ClusterDto extends BaseDto implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 集群名称
	 */
	private String name;

	/**
	 * 是否为混合集群
	 */
	private Boolean mixed;

	/**
	 * 包含软件
	 */
	private List<Map<String, String>> definitionSubServNames = new ArrayList<>();

	/**
	 * 所用网段
	 */
	private List<NetworkingDto> networkings = new ArrayList<>();

	/**
	 * 最大使用率
	 */
	private Integer maxUsage;

	/**
	 * 最大主机数量
	 */
	private Integer maxHostCount;

	/**
	 * 所属区域编码
	 */
	private String areaId;

	/**
	 * 所属区域名称
	 */
	private String areaName;

	/**
	 * 是否可用
	 */
	private Boolean enabled;

	/**
	 * 是否可用(文字显示)
	 */
	private String enabledText;

	/**
	 * 网络高可用标签
	 */
	private String haNetworkTag;

	/**
	 * 描述
	 */
	private String description;

	/**
	 * 获取集群名称
	 *
	 * @return name 集群名称
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置集群名称
	 * 
	 * @param name
	 *            集群名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取是否为混合集群
	 * 
	 * @return mixed 是否为混合集群
	 */
	public Boolean getMixed() {
		return mixed;
	}

	/**
	 * 设置是否为混合集群
	 * 
	 * @param mixed
	 *            是否为混合集群
	 */
	public void setMixed(Boolean mixed) {
		this.mixed = mixed;
	}

	/**
	 * 获取definitionSubServNames
	 *
	 * @return definitionSubServNames definitionSubServNames
	 */
	public List<Map<String, String>> getDefinitionSubServNames() {
		return definitionSubServNames;
	}

	/**
	 * 设置definitionSubServNames
	 *
	 * @param definitionSubServNames
	 *            definitionSubServNames
	 */
	public void setDefinitionSubServNames(List<Map<String, String>> definitionSubServNames) {
		this.definitionSubServNames = definitionSubServNames;
	}

	/**
	 * 获取networkings
	 *
	 * @return networkings networkings
	 */
	public List<NetworkingDto> getNetworkings() {
		return networkings;
	}

	/**
	 * 设置networkings
	 *
	 * @param networkings
	 *            networkings
	 */
	public void setNetworkings(List<NetworkingDto> networkings) {
		this.networkings = networkings;
	}

	/**
	 * 获取最大使用率
	 *
	 * @return maxUsage 最大使用率
	 */
	public Integer getMaxUsage() {
		return maxUsage;
	}

	/**
	 * 设置最大使用率
	 * 
	 * @param maxUsage
	 *            最大使用率
	 */
	public void setMaxUsage(Integer maxUsage) {
		this.maxUsage = maxUsage;
	}

	/**
	 * 获取最大主机数量
	 *
	 * @return maxHostCount 最大主机数量
	 */
	public Integer getMaxHostCount() {
		return maxHostCount;
	}

	/**
	 * 设置最大主机数量
	 * 
	 * @param maxHostCount
	 *            最大主机数量
	 */
	public void setMaxHostCount(Integer maxHostCount) {
		this.maxHostCount = maxHostCount;
	}

	/**
	 * 获取所属区域编码
	 *
	 * @return areaId 所属区域编码
	 */
	public String getAreaId() {
		return areaId;
	}

	/**
	 * 设置所属区域编码
	 * 
	 * @param areaId
	 *            所属区域编码
	 */
	public void setAreaId(String areaId) {
		this.areaId = areaId;
	}

	/**
	 * 获取所属区域名称
	 *
	 * @return areaName 所属区域名称
	 */
	public String getAreaName() {
		return areaName;
	}

	/**
	 * 设置所属区域名称
	 * 
	 * @param areaName
	 *            所属区域名称
	 */
	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}

	/**
	 * 获取enabled
	 *
	 * @return enabled enabled
	 */
	public Boolean getEnabled() {
		return enabled;
	}

	/**
	 * 设置enabled
	 *
	 * @param enabled
	 *            enabled
	 */
	public void setEnabled(Boolean enabled) {
		this.enabled = enabled;
	}

	/**
	 * 获取enabledText
	 *
	 * @return enabledText enabledText
	 */
	public String getEnabledText() {
		return enabledText;
	}

	/**
	 * 设置enabledText
	 *
	 * @param enabledText
	 *            enabledText
	 */
	public void setEnabledText(String enabledText) {
		this.enabledText = enabledText;
	}

	/**
	 * 获取网络高可用标签
	 * 
	 * @return haNetworkTag 网络高可用标签
	 */
	public String getHaNetworkTag() {
		return haNetworkTag;
	}

	/**
	 * 设置网络高可用标签
	 * 
	 * @param haNetworkTag
	 *            网络高可用标签
	 */
	public void setHaNetworkTag(String haNetworkTag) {
		this.haNetworkTag = haNetworkTag;
	}

	/**
	 * 获取描述
	 * 
	 * @return description 描述
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * 设置描述
	 * 
	 * @param description
	 *            描述
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "ClusterDto [name=" + name + ", mixed=" + mixed + ", definitionSubServNames=" + definitionSubServNames
				+ ", networkings=" + networkings + ", maxUsage=" + maxUsage + ", maxHostCount=" + maxHostCount
				+ ", areaId=" + areaId + ", areaName=" + areaName + ", enabled=" + enabled + ", enabledText="
				+ enabledText + ", haNetworkTag=" + haNetworkTag + ", description=" + description + "]";
	}

}
